R语言

您所在的位置:网站首页 R语言 grid函数 R语言

R语言

2024-07-10 12:21:40| 来源: 网络整理| 查看: 265

文章目录 前言数据集介绍polt与ggplot对比ggplot2绘图绘制画布几何对象统计变换标尺设置坐标系的转换分面facet_grid函数facet_wrap函数 保存图形 写到最后

前言

在R语言里,谈及绘图,ggplot2是最出名的绘图包之一,作为一个绘图神器,它提供了许许多多的功能给用户使用,仅用短短几行代码,一幅幅高端大气的图像便跃然纸上,这可能就是ggplot2包的魅力所在。 我刚开始学习ggplot2的时候只用于学术上的制图,对深层的制图一知半解,趁着有空便重新学习了一下ggplot2包,才发现其背后的制图逻辑竟跟GIS的图层叠加有着高度的相似,下面就是我学到的内容了。

数据集介绍

这次使用的数据集是R包内置的iris数据集,是由Edgar Anderson记录的3种鸢尾花形态数据。 iris以鸢尾花的特征作为数据来源,常用在分类操作中。该数据集由3种不同类型的鸢尾花的各50个样本数据构成。其中的一个种类与另外两个种类是线性可分离的,后两个种类是非线性可分离的。

该数据集包含了4个属性:

Sepal.Length(花萼长度),单位是cm; Sepal.Width(花萼宽度),单位是cm; Petal.Length(花瓣长度),单位是cm; Petal.Width(花瓣宽度),单位是cm; Species(种类):Iris Setosa(山鸢尾)、Iris Versicolour(杂色鸢尾),以及Iris Virginica(维吉尼亚鸢尾)。

在这里插入图片描述

polt与ggplot对比

我们用相同的数据,通过plot函数跟ggplot函数分别绘制散点图来简单理解一下两者的差异:

library("ggplot2") #加载安装好的ggplot2包 plot(iris$Sepal.Length, iris$Sepal.Width) #plot绘图 ggplot(data = iris,aes(x = Sepal.Length, #ggplot2绘图 y=Sepal.Width))+ #绘制底层画布 geom_point(color = "darkred") #在画布上添加点

plot函数散点图 上图为plot函数散点图,下图为ggplot函数散点图ggplot函数散点图 从上述代码可以看出,ggplot绘图有以下两个特点:

有明确的开始(以ggplot函数开始)与终止(一条语句一幅画)ggplot2语句可以理解成一条语句一幅画,然后通过图层叠加,叠加通过“+”号将绘图的语句连接起来。 ggplot2绘图 绘制画布

上面介绍的ggplot2绘图有明确的开始,即以ggplot函数作为开始的标志,那么ggplot()有什么用呢? 它的主要功能在于初始化一个ggplot对象,且不指定绘图内容,格式如下:

ggplot(data = NULL, mapping = aes(), ...,environment = parent.frame())

其中,data指的要绘图的数据集,它会被制定为绘图环境,载入之后就不需要写大量的$符号来提取data.frame里面的向量的操作。如果数据都是向量,那么也可不指定,但要在声明中标注data=NULL,否则会有不必要的报错。 数据与图形属性之间的映射关系称mapping。 ggplot对象的data存储了整个属性框的内容,而mapping则确定如何使用这些数据。图形的可视属性包括如形状、颜色、透明度等美学属性,确定美学属性与数据之间的对应关系一般用aes函数。常见的图形属性包括x、y、size、color、group.

比如,当data=iris时,mapping= aes(x = Sepal.Length, y = Sepal.Width)表示将花萼长度作为x轴变量,将花萼宽度作为y轴变量。如果需要将Species映射到形状或者颜色属性,可以添加shape=Species或者colour = Species. 使用ggplot函数绘制底层画布。

ggplot(data = iris, aes(x = Sepal.Length, y = Sepal.Width, colour = Species, shape = Species))

在这里插入图片描述 除了数据与映射之外,一个图层还应该至少包含位置、stat、position这三个图形属性。

几何对象

几何对象简单来说就是采用展示数据的图形类型。 如散点图、条形图等,ggplot2包提供了许多的图形类型供用户使用。

几何对象函数描述几何对象函数描述geom_abline线,由斜率和截距指定geom_jitter点,自动添加了扰动geom_area面积图geom_line线geom_bar条形图geom_path几何路径geom_bin2d二维封箱的热图geom_point点geom_blank空的几何对象,什么都不画geom_pointrange一条垂直线,线中间有一个点geom_boxplot箱线图geom_polygon多边形geom_contour等高线图geom_quantile一组分位数线geom_crossbar类似于箱线图,但无触须和极值点geom_rect二维长方形geom_density密度图geom_ribbon彩虹图geom_density2d二维密度图geom_rug触须geom_errorbar误差线geom_segment线段geom_errorbarh水平误差线geom_smooth平滑的条件均值geom_freqploy频率多边形geom_step阶梯图geom_hex六边形图geom_text文本geom_histogram直方图geom_tile瓦片geom_hlinegeom_hline

如果要在画布上绘制散点图的话,则只需在 “+” 号后面添加函数geom_point即可:

ggplot(data = iris)+ #绘制底层画布 geom_point(aes(x = Sepal.Length, y = Sepal,Width, colour = Species, shape = Species)) 统计变换

统计类型stat是指对数据所应用的统计类型和方法 上述代码中没有指定统计类型,但自动获得identity,因为ggplot2会默认为每一种几何类型都指定一种默认的统计类型,反之亦然。其中stat_identity表示不做任何的统计变换。运行代码如下:

ggplot(iris)+ geom_bar(aes(x = Sepal.Length, stat = "bin", binwidth = 0.5))

在这里插入图片描述

标尺设置

aes函数设定了数据与图形属性的映射关系,但是数据怎么映射为属性则是标尺(Scale) 的功能。 对于任何一个图形属性,如x,y,alpha,color,fill,linetype,shape,size等,ggplot2都提供以下4种标尺:

(1)scale_*_continuous:将数据的连续取值映射为图形属性的取值 (2)scale_*_discrete:将数据的离散取值映射为图形属性的取值 (3)scale_*_identity:将数据的值作为图形属性的取值 (4)scale_*_mannual:将数据的离散取值作为手工指定的图形属性的取值

随机从iris数据集的150个样本中抽取100个样本,并绘制条形图以反映100个样本中各个鸢尾花,并绘制条形图以反映100个样本中各个鸢尾花种类的数量情况,然后提供修改标尺参数做前后对比图。代码如下:

set.seed(1234) my_iris


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭